home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / glimpse-2.1 / agrep / agrep.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-16  |  3.6 KB  |  104 lines

  1. /* Copyright (c) 1994 Sun Wu, Udi Manber, Burra Gopal.  All Rights Reserved. */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #include <ctype.h>
  6. #include "re.h"
  7. #include "defs.h"
  8. #include "config.h"
  9. #include <fcntl.h>
  10. #include <unistd.h>
  11. #include <string.h>
  12.  
  13. #define MAXNUM_PAT  32    /* 32 parts of a pattern = width of expression-tree */
  14. #define CHAR    unsigned char
  15. #define MAXPAT 128
  16. #define MAXPATT 256
  17. #define MAXDELIM 8    /* Max size of a delimiter pattern */
  18. #define SHORTREG 15
  19. #define MAXREG   30
  20. #define MAXNAME  256
  21. #define Max_Pats 12    /* max num of patterns */
  22. #define Max_Keys 12     /* max num of keywords */
  23. #define Max_Psize 128   /* max size of a pattern counting all the characters */
  24. #define Max_Keyword 31  /* the max size of a keyword */
  25. #define WORD 32         /* the size of a word */
  26. #define MaxError 8      /* the max number of errors allowed */
  27. #define MaxRerror 4     /* the max number of erros for regular expression */
  28. #define MaxDelimit 16   /* the max raw length of a user defined delimiter */
  29. #define BlockSize  49152
  30. #define Max_record 49152
  31. #define SIZE 16384       /* BlockSIze in sgrep */
  32. #define MAXLINE   1024  /* maxline in sgrep */
  33. #define MAX_LINE_LEN 1024
  34. #define Maxline   1024
  35. #define RBLOCK    8192
  36. #define RMAXLINE  1024
  37. #define MaxNext   66000
  38. #define ON 1
  39. #define OFF 0
  40. #define Compl 1
  41. #define Maxresult 10000
  42. #define MaxCan 2500
  43. #define MAXSYM 256 /* ASCII */
  44. #define WORDB     241    /* -w option */
  45. #define LPARENT   242    /* ( */
  46. #define RPARENT   243    /* ) */
  47. #define LRANGE    244    /* [ */
  48. #define RRANGE    245    /* ] */
  49. #define LANGLE    246    /* < */
  50. #define RANGLE    247    /* > */
  51. #define NOTSYM    248    /* ^ */
  52. #define WILDCD    249    /* wildcard */
  53. #define ORSYM     250   /* | */
  54. #define ORPAT     251   /* , */
  55. #define ANDPAT    252   /* ; */
  56. #define STAR      253   /* closure */
  57. #define HYPHEN    237   /* - */
  58. #define NOCARE    238   /* . */
  59. #define NNLINE    239   /* special symbol for newline in begin of pattern*/
  60.                        /* matches '\n' and NNLINE */
  61. #define USERRANGE 236     /* max char in pattern of user: give warning */
  62.  
  63. #define OUTPUT_OVERFLOW    /* fprintf(stderr, "Output buffer overflow after %d bytes @ %s:%d !!\n", agrep_outpointer, __FILE__, __LINE__) */
  64. extern unsigned char *forward_delimiter(), *backward_delimiter();
  65. extern int exists_delimiter(), preprocess_delimiter();
  66. unsigned char *forward_delimiter(), *backward_delimiter();
  67. int exists_tcompressed_word();
  68. unsigned char * forward_tcompressed_word(), *backward_tcompressed_word();
  69.  
  70. #define AGREP_VERSION    "3.0"
  71. #define AGREP_DATE    "1994"
  72.  
  73.  
  74. /* To parse patterns in asplit.c */
  75. #define AND_EXP 0x1    /* boolean ; -- remains set throughout */
  76. #define OR_EXP 0x2    /* boolean , -- remains set throughout */
  77. #define ATTR_EXP 0x4    /* set when = is next non-alpha char, remains set until next , or ; --> never used in agrep */
  78. #define VAL_EXP 0x8    /* set all the time except when = is seen for first time --> never used in agrep */
  79. #define ENDSUB_EXP 0x10    /* set when , or ; is seen: must unset ATTR_EXP now --> never used in agrep */
  80.  
  81. #define INTERNAL 1
  82. #define LEAF 2
  83. #define NOTPAT 0x1000
  84. #define OPMASK 0x00ff
  85.  
  86. typedef struct _ParseTree {
  87.         short   op;
  88.         char    type;
  89.         char    terminalindex;
  90.         union {
  91.                 struct {
  92.                         struct _ParseTree *left, *right;
  93.                 } internal;
  94.                 struct {
  95.                         int     attribute;    /* never used in agrep */
  96.                         unsigned char    *value;
  97.                 } leaf;
  98.         } data;
  99. } ParseTree;
  100.  
  101. #define unget_token_bool(bufptr, tokenlen) (*(bufptr)) -= (tokenlen)
  102.  
  103. #define dd(a,b)    1
  104.